@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 144ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uEiͩkΩ͙kCop j`j {j`Hi͝Νh`T}L"UNEM:D"NURͩkΩ͙kCop j`j {j`Hi͝Νh`*8PARMREPLYTYPEDATEDBNAMEYNNAMEDRIVEDCNPTOFFSEVVVVVVVVVVV1V1V1V1V1V1V1V1V1V1UPDAT V}RECLETOTRECDELRECKEYAREFILENAMEXHD W}  X} !"#$%&'(  Y}Πՠ͛Π٠Ҡś ֬ UPDATED 02/20/90#"F:BG(,Ab" @P(dAf Z}AC'AgA1dŠˠ٠ҠӠȠ֠ ٛ͠2 A<6-6-@ [}'6-@36-@?6-@K6-@W6-@c6-@o6-@{6-@ 6-@6-@6 \}-@6-@6-@6-@F96-@6-@'6-@36-@96-P44;,;,;,; ]},;,;AS,;@ ,Z.@.@@E:dy +76-F:A`,%AV$F:Aa,%@ ^}K&@@q_%@@y0@n A@x7-@@4(ENTER MENU SELE _}CTION BELOW7(!!( - DEFINE A NEW DATABASE##( - ADD RECORDS TO DATABASE##( - INQUIRE/UPDATE DATABASE( `} - REFORMAT A DATABASE( - DATABASE STATISTICS( - FILE DIRECTORY( - QUIT( ( A a}# 4D A`#% D1:DEFINE 4A A` %D1:ADD$ 4I A`$% D1:INQUIRE% 4R A` b}%% D1:REFORMAT 4S A 4F Ap 4Q Ap0-@@ 0(INVALID MENU SELECTI c}ON" A , A@6, -,(DO YOU ONLY HAVE 1 DISK DRIVE?@ -(J4Y)4N APT d} A^& -&(ENTER DATABASE FILE NAMEh -(r B:,! A | 4Y6.1 4N e}6.2 A A1 -1(READY DISKETTE IN DRIVE  ĭ# -( PRESS RETURN # f} Ap% )67B:,%,.>:,% A`"F:A,A6" A A6-AV$@: g}7,,%@:7,,6-@:7,,6-AV$@:7,,%@:7,,6-AV$@:7,,%@:7,,6-AV$@:7,,%@:7,, h}& A06(%(PRESS RETURN TO CONTINUE ,6 A:3&@@D:*.*0 A@3(D i} 6- A0N X(bR 6-%"@(8(PRESS ENTER TO CONTINUE ?I A@L(R6-l A j}v A`W(>:A%,"-@1( ULTRAFILERC-@#W( aF:BG(, k}Ab*@@d<B7t@daŠˠ٠Ҡ̯Šӛ$( .....$ A l}@6-1(1(&# NAME LEN # NAME LEN ! A6-+&,$%##( 7<%, @:7 m}%,, %!(  A 6-%6-+&,$%""( 7<%, @:7%,, 6-% AJ(( n}Š 0(Ġ J( Ԡ 7<,/( &/(̠ $ 6. o}D67B:,%,.67B:,%,.:67B:,%,.67B:,%,..DEF$ "F:A,Ap" A p}a-@@ <("INSERT PROGRAM DISKETTE ON DRIVE 1T(ĭ PRESS RETURNa@  A*5+F:A, q}Ae*F:A,Ap5 A44 -F:A,"Ae4(INVALID FILE NAME>=F:A,"Ae.(INVALID F r}ILE NAME3= APHR+(#THAT FILE NAME NOT ON THIS DISKETTER( INSERT PROPER DISKETTE ON DRIVE R(ҭ CORRECT s} FILENAME\f APpMM(ҠF:A,ӠĠԠF:A,$AV%F:A,z (CONSULT RE t}FERENCE MANUALD:MENU(ҠF:A,ӠĠԠF:A,$AV%F:A,z (CONSULT RE #uvVVVVVVVVVVV1V1V1V1V1V1V1V1V1V1PARMREPLYTYPEDATEDBNAMEYNNAMEDRIVEDCNPTOFFSELENGTv}HL w}x} !"# !!Šנ !!Π٠Ҡ %%Ҭy} UPDATED 02/24/90( A 26-6-@'6-@36-@?6-@K6-@W6-@c6z}-@o6-@{6-@ 6-@6-@6-@6-@6-@6-@<36-@6-{}@'6-@36-@F33;AS,;,;,;,;,;,;,;,PE:ZI++6-F:A`|},%AV$F:Aa,%9&@qA%I0d 6-6-6-n# 6. 67AS,.#67,.x A5}} A -5(ENTER FIELD NAME % ҭ -( /* TO END -(@B:, )B:,!-@ ~}6(INVALID FIELD NAME@ A0=7<,4 -@ 3(INVALID FIELD NAME= A0 4/* A  A} 67,. 6-%67,.>:B:,, 6-%2 6.A A2BYPASS ASKING TYPE FOR NOW' -'(ENTER F}IELD TYPE - A OR N -(4A)4N A&-@ &(INVALID FIELD TYPE A@" 6}7,., 6-%6 - (ENTER FIELD LENGTH@ APJ -(TB )!A-@ 8(INVA}LID FIELD LENGTHB A^J%!A-@ @(MAXIMUM RECORD LENGTH EXCEEDEDJ Ah$6-P:'AV,$6-}&$AVr67,.>:,| 6-%67,.>:, 6-%67,.>:, 6-% 6-% A&-@ }&(FIELD LENGTH ERROR A  A 6-%K!@ -@ A(!MAXIMUM NUMBER OF FIELDS EXCEE}DEDK A A E(>:A%,-%( ULTRAFILER1-@#E(aF:BG(,Ab*@}@d<B7t@daŠˠ٠Ҡ̯Šӛ$8 ( 8(# OF FIELDS =  RECORD LENGTH = }& ( &++(# FIELD NAME TYPE LENGTH0 ( :$D, ( %(PRESS ENTER TO CONTINUE,N$X} A A0b7 " (#(NO FIELDS DEFINED- A7 Al 6--vE ( E(7<%, }7%<%, @:7%<%,, " A 6-%   A1 A(.(ENTER YOUR ME}NU SELECTION1())(!S - SAVE THIS DATABASE DEFINITION,,($R - REENTER THIS DATABASE DEFINITION(M - RETURN TO MAI}N MENU$(Q - QUIT( ($ 4R A 4M A  4Q A A) -})(ENTER TODAYS DATE AS   -(B2010000)3123199'-@ 8( INVALID DATEB A` }67<,.*, -,(DO YOU ONLY HAVE 1 DISK DRIVE?4 -(>4Y)4N APH AR& -}&(ENTER DATABASE FILE NAME\ -(f B:,! Ap 6.Dz 4Y6.1 4N6.}267B:,%,.67B:,%,.:67B:,%,.67B:,%,..DEF Ap1 -1(READY DISKETTE IN DRIV}E  ĭ" -( PRESS RETURN",6-P:+&,'AV,,6-+&,&$AV67<,.>:,}67<,.>:,67<,.>:,67<,.>:,67<,.>:,67<,.>:,$67<,.>:,. 8B A}LV` A@j%D1:MENUt"F:A,Ap" A ~U-@ 6("INSERT PROGRAM DISKETTE }ON DRIVE 1N(ĭ PRESS RETURNU A "F:A,Ae" A %-@ %(INVALID FILE NAME} A  APMM(ҠF:A,ӠĠԠF:A,$AV%F:A, (CONSUL}T REFERENCE MANUALD:DEFINEҠF:A,ӠĠԠF:A,$AV%F:A, (CONSUL))VVVVVVVVVVV1V1V1V1V1V1V1V1V1V1PARMFIELDTYPEDATEDBNAMEYNNAMEDRIVERECORDMSGOPTDR}ECLECNTOTRECDELRECPTOFFSELENGTROCOCOLUMCURRECHLEMSG@@@@@@@}@ @ @ @ @ @@@@@@@aad}  Br !"#$%&}'()*+,-. %%ĠӠϠ !!Π٠}  ֬ UPDATED 02/24/90( A`26-6-@'6-@36-@?6-@K6-}@W6-@c6-@o6-@{6-@ 6-@6-@6-@6-@6-@6-@}<36-@6-@'6-@36-@FDD;AS,;A,;,;,;,;,;,;,;A,P};,;,;@,ZE:dI++6-F:A`,%AV$F:Aa,%9&@qA%I0n6.} ENTERINGx A ) -)(ENTER TODAYS DATE AS  -(B2010000)3123199'-@ }8( INVALID DATEB A , -,(DO YOU ONLY HAVE 1 DISK DRIVE? -(4Y)4N A} A`& -&(ENTER DATABASE FILE NAME -( B:,! A 4Y6.1 4N}6.2 A  A1 -1(READY DISKETTE IN DRIVE  ĭ# -( PRESS RETURN #"}, A 6% )67B:,%,.>:,% A@"F:A,A6" AJ A`T6-AV$}@:7,,%@:7,,^6-@:7,,h6-AV$@:7,,%@:7,,r6-AV$@:7,,%@:7,,|( A ` !} A A 6.D67B:,%,.67B:,%,.:67B:,%,.67B:,%,..DAT "} !! 6. 67&,. !67,./(((DO YOU WANT AUTO-DUPLICATION?/ A  A} 0 6-6- 6-%& ! A0##6-@:7%,,$AV%@:7%,,:6-@:7%,,D+ 4Y-(} = +(7<%&,N' "6. OR TO END' AX6. b -(ENTER 7<%,l6-@:7}%,,v6-P:'@8,%6-&+&,$@8% 6-%"@@6-%6-; -(-(,6}-F:@,;6-F:@,, 6. 67A,. %67,.,/%"F:@,*"F:@,*4Y/ AP) B:},67A,. )67,.7, B:,  A07<,4/* APà 67<%&,.} 6-% A  A@  A  6-  -*16-@:7%,,16-@:7%,,$AV%@:7%,,4(}7<%, 7<%&,> 6-%H R6(6( PRESS RETURN TO ACCEPT RECORD # %% \- 0#6. RE-E}NTERING- Af 6-%p6. ENTERINGz ( AJ(>:A%,-%( ULTRAFILER1-@ J(}aF:BG(,Ab*@@d<B7t@daŠˠ٠Ҡ̯Šӛ$} -( RECORD # %%$2(Š 2( Ԡ 7<,/( &/(}̠ $ 6.D67B:,%,.67B:,%,.:67B:,%,.67B:,%,..DEF$ŠԠ} $ A .) -&(TOTAL RECORDS ADDED = )(8B A L A`V` 6-%j}67<,.t&6-P:+,'AV,&6-&$AV~67<,.>:,67<,.>:,  A `'($(}ENTER YOUR MENU SELECTION'(##( - INQUIRE/UPDATE DATABASE( - RETURN TO MAIN MENU( - QUIT( (}4I)4i A4M)4m A04Q)4q A A  AP% D1:IN}QUIRE(2 AP<%D1:MENUF"F:A,Ap" A`PU-@ 6("INSERT PROGRAM DISKETTE }ON DRIVE 1N(ĭ PRESS RETURNUU B4I AZ A0d?(DISKETTE IS FULL 8(PRESS RETU}RN TO CONTINUE ?n APx8 A (8(FILE CONTAINS  DELETED RECORDS9 (DO YOU STILL WISH TO ADD}9(USING THIS PROGRAM?  4Y A/(%(TRANSFERRING TO INQUIRE.../ AP% D1:INQUIRE"F:}A,Ap" A`U-@ 6("INSERT PROGRAM DISKETTE ON DRIVE 1N(ĭ PRESS RETURNU A0}"F:A,"Ab" A5+F:A,Ae*F:A,Ap5 A`4 -F:A,"Ae4(INVA}LID FILE NAME=F:A,"Ae.(INVALID FILE NAME3= AR+(#THAT FILE NAME NOT ON THIS DISKETTER( INS}ERT PROPER DISKETTE ON DRIVE (ҭ CORRECT FILENAME AMM(ҠF:A,ӠĠ}ԠF:A,$AV%F:A," (CONSULT REFERENCE MANUAL,6 D:ADDҠF:A,ӠĠ]z{k9>J>XMENXNEXXYXHDXPRXERVVVVVVVVVVV1V1V1V1V1V1V1V1V1V10V19V25UPDATPARMFIELDDATEDBNAM}EYNNAMEDRIVEOPTKEYPARMMLBUFFERSELPARMPRTPARMPRTSRTOPTCONDREGDRECLECNTOTRECDELRECRECORDKEYAREKEYFSECTO}FBYTKEYKEYLEPTKEINSECTOBYTHLPTRLENGTOFFSEEXTCNRECNULINPAGCURDELSELOSTARSORROCOPLENGTPRTCNPW}IDTPUPLINEADDAApA 0A@0AFAQ @@ @ @ @ @ @}@@ @@@@@@@@@AAAV}Raad !" #$%<&%')()))d*v+,}-.Br/@0A$1@2@a34|5BDf6o87A389@:@';@8<}@=@>@a?AT@A%A@ B@CAD@ E@1FGHIJK@}L@ MNA O@PQB7`RST@U@V@W@X@YA2ZA2[@}\@f]B8 %%ůŠ !!Π٠Ҡ  ì UPDATED 02/24/90(K}6-A6-Ap'6-A 036-A@0?6-AFK6-AQ 2 <6-6-@'6-@36-@}?6-@K6-@W6-@c6-@o6-@{6-@ 6-@6-@6-@6-@}6-@6-@FQ6-@6-@'6-@36-A?6-AK6-AVQ6-P..;AS,;,};,;,;,;,;,Z::;,;@`,;A`,;,;,;,;A0,d&;,;,;,6.&6.n}E:xC+%6-F:A`,%$F:Aa,%3&@q;%C0 ) -)(ENTER TODAYS DATE A}S  -(B2010000)3123199'-@ 8( INVALID DATEB A0, -,(DO YOU ONLY HA}VE 1 DISK DRIVE? -( 4Y)4N A Ap& -&(ENTER DATABASE FILE NAME -}( B:,! AP` 4Y6.1 4N6.2 AF` APP1 -1(READY DISKETT}E IN DRIVE  ĭ"# -( PRESS RETURN #,6 A0@% )67B:,%,.>:,% A }JF:,A6 APPT ^6-$@:7,,%@:7,,h6-@:7,,r6-$@:7,,%@:7,,|6-$@:7,,%@:7,}, ;%,6-I:,&;,( AF  APP 6.D67B:,%,.67B:,%,.:67B:},%,.67B:,%,..DAT ! 6. 67&,. !67,.8((MULTI-KEY SORT?  &6.},6-26-86- 6-6- 6-%  A& 0Y A0=(( MORE KEYS? ! A 0)4}Y36-$%= A : AD  A@PN' -'(7<%, @:7%,,X. -$( KEY FIELD # %? }. A 0b 0Y6-% A0l Av) -"(KEY FIELD LENGTH ? ) )!@:7%,, A}-67,.>:,67%,.>:%,-67%,.>:, 6-%6-% 6-%6-% A06-@:7%,, AP, }-"(INVALID FIELD LENGTH, A06-@:7%,, " Ap ' A1 -1(#INSUFFICIENT RO}OM FOR KEYS SELECTED%%(EITHER SELECT FEWER KEYS ҭ##(REDUCE SIZE OF KEY FIELD(S) A# -#(NO KEY}S WERE SELECTED ;/('AT LEAST ONE KEY FIELD MUST BE SELECTED7-;  A  A 6-6-*$  -}$(LOADING KEYS ... 4 > H B:, AHR6-P:',6-&$\+67,.>:,67%,.>:,+67}%,.>:,f 6-%p 6-6-%z 6- 6-% ! A 6-+@:7%,,&,$%6-@:7,,6-@}:7%,,$%@:7%,,67<%&,.7<%&, 6-% 6-% A F:,A6   6-6-}6-6-% -"(ENTER MENU SELECTION%(( - BUILD NEW KEY FILE( - SORT KEY FILE( - FIND EQUAL }KEY&&( - EXTRACT SELECTION CRITERIA$""( - BROUSE THROUGH RECORDS.( - PRODUCE LABELS8( - RETURN TO MA}IN MENUB( - PRINT REPORTL( - REPLACE FIELDV""( - TOTAL SELECTED RECORDS`%%( - UNDELETE A DELETED RECO}RDj( - CHARACTER SCANt( - WRITE SUBFILE~( - QUIT&((ENTER SELECTION & A P 4K} A 4S A)0 4E A6 4R A&  4F A8 4B A 4}L)4P A2 4T A  4C A%p. 4W$ D:SUBFILE.DAT. A  4M AP} 4Q AG  G4U*"(1(NO DELETED RECORDS IN FILE?-AC G  4U A  (}/ 6- 6-6-(/( PROCESSING...2 6-%! A<(B2yF:B2y, ( A)F6-@:7},,$%@:7%,,P6-@:7%,,Z@:7%,,"6-%d!4U*@:7%,,"! A2 n4U)@:7%,," x "} A 6-6-6- 6-% ! A!!6-@:7+@:7,,&,$%,,%&6-@:7%,,??@:7%,},ApAAA0APAp#7<%&,47%<%%,#6- A#7<%&,27%<%%},#6- A#7<%&,37%<%%,#6- A#7<%&,/7%<%%,#6- A#7}<%&,17%<%%,#6- A"#7<%&,07%<%%,#6-, A66-%%@:7%,, A @(} APJ 4T A`T ^ h 0C A`r 6- A(" | 6-% B:,} AH 4T Ap 4R A& 4W   4L A! 4P A#p }A p) 4C A  AE) A0 4D A10 4M6.   6-% A04}L*! ADP" 4P-&( " / 4L  / LABELS PRINTED = 4W A' }7+,)+,%(UPDATING COUNTS+6-16-76-Q  ($(Ġ = '(F(PRESS RETURN TO CONTINUE M}Q  & 6-6-0 6-%:" ! 6-"$D6-@:7%,,$%@:7%,,N6-@:7%,,X}) -( Ҡ()(7<%&,b -(ENTER 7<%,l6-@:7%,,v6-P:'@8,%6-&+&,$@8}% 6-%"@@6-%6-; -(-(,6-F:@,;6-F:@,& 6. 67,.} 67,.&)"F:@,*"F:@,) A # B:,67,. #67,.7,67<%&,. 6-%}  A@5 6. !@:,!@56.>:@:,&@2,$5 6. !@:,!@56.>:@:,&@2}, $   6- ((* -4+6-@:7%,,+6-@:7%,,$%@:7%,,>(7<%, 7<%&,H 6}-%R \S(((PRESS RETURN TO CONTINUE ҭI(ENTER HANGE, ELETE, ENU S A 0f 4( PROCESSING...p}4C)4D)4M)4$z A!@ " AA A(  A%0# 6-6-6-6-#6-% }! A#P -@:7%,, A#06-@:7%,,+6-+&,$%%+6-$@:7,,%@:7%,,76-@:7,},76-+@:7%,,&,%$+&,%++&,$$,% " A#  6. 6-%%6-?:C:,:, 67<,.>:, 67<,.>:, 67<,.>:,   $} B:,"A` A( 6. pp67@<@,.Uԅh`hhhhhhmmh}hhhhhmͥm" oo67@<Ai,.TΥ8ͥ΢%8͍ `iͥiΩ6ȱ}%8, vv67Ap<A`,.[ `iͥiΩʭ8͍ 8ԥեiԥi}`6 ##67A<A,.>:AU,@ $J (%6-?:C:,:,b  l 6-}%v    # -&#67%%<%%,.>:, F(((PRESS RETURN TO CONTINUE ҭ9( ENTER ENU C A 0F}$ - 67<,.     A  AE  !6-& 6-   C  ( (6-6-6-%6}-+6-34L96-C A3` M A3)(ENTER MAXIMUM COLUMNS -C @)!A2M A3 E A3'}(ENTER MAXIMUM LINES +; )!@E A3 9 A3 !(ENTER SPACING %/ )!9 A3  @(ENTER }REPORT HEADING 6B:, )B:,!@@@ A30 ; A3P)(ENTER STARTING PAGE # -;6-&@  6-6-} A3 / A3`+(ENTER COLUMNS PER LABEL /* , A3p((ENTER LINES ON LABEL ,4 0 A3,(ENTER #} OF LABELS ACROSS 0>   ( A@H 6-%R  !  A5p\ d A64L?(ENTER FIELD #  LI}NE #  ҭd( ENTER 0 FOR NEXT LABEL LINE ҭa ( 4P((ENTER FIELD #  ҭc *#(PRESS RETURN TO BEGIN PRI}NT*f  ! A4 k  *4P A4 p -  6-6- # A@- A4z 6-+&,$%% = A}4p,(ENTER FIELD PRINT LENGTH 3= A4 6-@:7,,  )!@:7,, A4` #6-@:7&,,6-!}#6- ++%&,!!( WIDTH EXCEED + A4  6-P:O:&,', 967,.>:,67%,.>:,+67%,.>:,967%,.>:}, 67%,.>:, -!*4P#67%<%,.>:%,- A5` 67%,.>:%, = 6-%%6-%6-%%6-%) 3} A@= A4 E A5p(>(#TURN ON PRINTER ĭ PRESS RETURN E  4P AIP:}  A   A5p 6-6-6-6-$ 6-%.5 4B6.B6-6-%6-+6-5 A 8} ! B6-+@:7%,,&,$%L  A@PV$ -$(7<%, @:7,,`) -%(SELECT ON THIS FIELD? }) j 0Y6-% A6 t A8`~( -(( =, <, >, <=, >=, <>3 -((ENTER COMPARISION NUMBER  }/3   )! A8p67,.>:,67%,.>:,67%,.>:,# -#(ENTER COMPARISON DATA -!}( B:,"67@:7,,,. ;B:,!@:7,,-1(INVALID FIELD LENGTH; A767%,.>:B:,,"}67%<%%B:,,.7:A%,-%( ULTRAFILER1-@#D(aF:BG(,Ab*'}@@d<B7t@daŠˠ٠Ҡ̯Šӛ$ -(FIELD NAME LENGTH$(}   6-1(1(&# NAME LEN # NAME LEN ! AAp6-+&,$%##( 7<%, @:7)}%,," %!(  AAp, 6-%6-+&,$%6""( 7<%, @:7%,,@ 6-% AAJ ( $T*} (6-^ -h -r&  6-%67,.*& AB0| 6-%67,.    -(+}7<, 2(ARE FORMS ALIGNED?  (0Y2 ABP -(     $ 6-6-6-6-%,} -&(  .6-&+P:',,&+P:B:,,',.67<%B:,,.M67<,.7<, 67<,./067<,.7<,-}=67<,./M67<,.7<,'67&<&,.PAGE'67&<,.=:,(7<,(   ! AD0 -.}@:7%,, AD6-@:7%,,6-+&,$%&96-@:7%,,96-+@:7%,,&,%$+&,%++&,$$,%06/}7<%&,.7<%&,: 6-% D 6-%6- AC@N"(7<,6- "( X$b 6--l#0}6-++&,$$,%#6-%+$,&v(7<, 6-% $ 6- 6-6-% 6-% ! $6-+@1}:7%,,&,$%6-@:7,,6-@:7%,,$%@:7%,,67<%&,.7<%&, 6-% 6-% AE ! 62}. 67$$,.!67,.$ 2(Š 2( Ԡ 7<,/( &/(̠3}  (ؠ٠ *$4 6.D>67B:,%,.H67B:,%,.:R67B:,%,.\67B:,%,..DEFf4}$p  z " AH` AF` 67<,.6-P:+,',6-&$67<,.>:,5}67<,.>:,6-P:+,',6-&$67<,.>:,67<,.>:,     ( ( AF 6}((WRONG LENGTH RECORD5.( INPUT SIZE = B:, SHOULD BE = 1(5($  AG . 6-&867}-P:+&,'+%,,6-B -L6-@:7%,,6-@:7%,,V 6-$%6-$%`'67%<%,.>:,'67%<%,.>:,8}j 6-%t ~$ AP %D1:MENUF:,Ap U-@ 6("INSERT PROGRAM DISKETTE ON DRIV9}E 1N(ĭ PRESS RETURNU AP#F:,Ae*F:,Ap# . -F:,"Ae.(INVALID FILE N:}AME7F:,"Ae((INVALID FILE NAME-7 AR+(#THAT FILE NAME NOT ON THIS DISKETTER( INSERT PROPER DISKE;}TTE ON DRIVE (ҭ CORRECT FILENAME AAA(ҠF:,ӠĠԠF:A,$%F:A<},  (CONSULT REFERENCE MANUAL  D:INQUIREF:,ӠĠԠF:A,$%F:AO R. Roger Cole January 1, 1990 U_L_T_R_A_F_I_L_E_R_>} _-_ _A_ _B_A_S_I_C_ _F_i_l_i_n_g_ _S_y_s_t_e_m_ ?} ULTRAFILER/COLE/2 ULTRAFILER is a system to allow you to manage a collection@} of data records. ULTRAFILER has functions to add new records, change existing records, delete records, and evenA} un-delete records. Reporting functions allow you to print reports or labels. ULTRAFILER has a few featuresB} that even some commercial programs lack. It has the ability to print 1 or 2 or 3 wide labels. The sort option C}allows a multi-field sort. The reporting function automatically centers columns and column headers within available D} space. A unique UNDELETE option allows you to re-use space within your database without reorganization. A fairly E}sophisticated algorithm allows multiple selection conditions. The first module of ULTRAFILER is MENU. ThisF} program does what the name suggests--gives a menu of options. The DEFINE module should be entered to first set G}up a new database. ADD should be entered to add the first records to a new database or add more records to an exH}isting database. The INQUIRE module produces printed reports, labels, and can update or delete existing records. The I}REFORMAT module is used to modify field definitions for an existing database. It will allow you to add/delete fiJ}elds, change field size and change field names. Each of these modules will be examined in depth. First, howK}ever, an explaination of the file structure is in order. ULTRAFILER has two files for each database. The first fileL} has an extension of .DEF and contains the definitions of all fields within the database. It also contains certainM} other information such as date updated, total record count, deleted records, etc. The other file, with the exteN}nsion of .DAT, is the actual data itself. Each record is actually 1 character longer than the DEFINE programO} ULTRAFILER/COLE/3 indicates. The last character of each record P}is an EOL (decimal 155). The maximum number of fields per record is 15. The maximum number of characters per fiQ}eld is 100. Additionally, the total sum of characters cannot exceed 255 (maximum record length). The numbeR}r of records that can be placed upon a diskette can be determined by dividing the free bytes by the record length + 1. S} Several smaller data files can be placed upon one diskette as can the programs themselves if room permits. For T}larger data files, the programs should be on a diskette by themselves. Multi-drive systems are supported. If yoU}u have a multi-drive system, ULTRAFILER expects the program diskette to be on Drive 1 and the database diskette to beV} on Drive 2. The MENU module will transport you to either the DEFINE, ADD, INQUIRE or REFORMAT module. W}In addition, you have 2 other options. You can enter "F" to get a directory of all files on a diskette without eX}xiting to DOS. By typing "T", you will be shown 3 control fields from the data base definition record. They are: LastY} Date Database was updated, Total Record Count, and Active Record Count. The number of deleted records is the diZ}fference between the Total and Active Records. DEFINE is the module used to set up a new database. For each[} field, you must first enter a field name. A field name consists of 1 to 12 characters. Embedded blanks are all\}owed, but the first character of the name cannot be blank. You may use inverse characters for field names if you]} wish. The next question you must answer is the field length. This must be a number from 1 to 100. Make sure the ^} field length is long enough to hold whatever data you want the field _} ULTRAFILER/COLE/4 to contain. Additionally, you should make sure all your fields fit on one screen`} You will repetitively be asked for the next field. When there are no more fields, enter a "/*". You will tha}en be shown all fields you have defined and be offered a menu. You may save the definition, re-enter the definitb}ion, return to the main menu or quit. If you decide to save the definition, you will be asked the same questions as c} in the beginning of the ADD module. Once your database has been defined, you will want to add records vid}a the ADD module. Upon entering this module, you will be asked a series of questions. You will be asked the current de}ate. Enter it as month/day/year with no slashes. e.g. 022887. Next, you will be asked if you only have 1 disk f}drive. After this, you will be asked the database name. This name must start with an alphabetic character and cg}an be up to 8 characters long (no special characters or embedded blanks). You will then be instructed to ready the proq}?B%DOS SYSB*)DUP SYSBSAUTORUN SYSB UMENU B!uDEFINE B)ADD B~INQUIRE B=ULTRAFILDOCB?REFORMAT per diskette and type RETURN. Before actually entering data, you will be asked if you want "auto-duplir}cation". This feature, when selected, retains the value of all fields from the previously added record. If you wish ts}he field in the current record to be identical to the same field in the previous record, merely type RETURN; othet}rwise, enter the data for the field. Upon filling in all fields for the record, you will be shown the data au}nd given the option of saving the record. To save the record, merely type RETURN; otherwise, type any other key followv}ed by RETURN to be given another chance. As with DEFINE, a "/*" will take you to a wrapup routine. You will be w}shown record counts and then given a menu ULTRAFILER/COLE/5x} selection of where to go next. The INQUIRE module is the heart of the ULTRAFILER system. With this mody}ule, you can select records for extraction, sort them, list them on the screen, print a report, or print labels. This z}module also allows you to change or delete existing records in the database. If you have deleted records in your{} database, you can "undelete" a record and reuse the space for a new record. You can, if you wish, merely get a |}total of records meeting your selection criteria. Once INQUIRE begins, you will be asked the same questions as in}} the beginning of ADD. Following this, you must make a decision as to the key or keys to be extracted. A key is ~}nothing more than a portion of each record in the database placed into memory. This key can be used to decide wh}ich records to extract or as a field in the sort process. Therefore, every field to be compared for extraction or used} for sorting must be declared as a key. The key field need not be as long as the data field, however. If, for e}xample, you wish to sort a 30 character name field, 10 characters may be quite sufficient. Remember, keys take u}p memory and there is only a finite amount of same. You may have several key fields for each record. You ca}n sort on each key field individually. If however, you wish to sort on more than one field at a time, you should} enter "Y" when asked "MULTI-KEY SORT?". When entering the sort option, the entire key field will automatically }be sorted. For a multi-key sort, the key fields must be named in the order they will be sorted (major to minor sort or}der). If the multi-key sort option is specified, you will be asked at the end of the list of fields if there are} any more key fields. This is ULTRAFILER/COLE/6 to all}ow you opportunity to place sort fields in order if they don't happen to be needed in the order of their being defined.} Once all key fields are declared, INQUIRE reads each data record and fills in a key record for each one. O}nce all keys are loaded, multiple selects, reports, labels, etc. may be accomplished until such time as a differe}nt key would be needed. If different requests are needed for one database, it would be advantageous to extract keys } needed for all requests since the extract process can take a while on large databases. Once the key file has been }loaded, you will be presented a menu. Before you get the first menu, the keyfile has already been built. } K - BUILD NEW KEY FILE. This option is for a subsequent regeneration of the key file without having to exit to the} menu and rerun the INQUIRE module. S - SORT KEY FIELD. This option will sort a key field of your cho}ice in ascending order. If a multi-key sort was not specified, you will be asked which key you want to sort; otherwise}, the entire key area will be sorted. F - FIND EQUAL KEY. Many times you will want to find just one s}pecific record, perhaps to update it. You could select the E option, enter your selection criteria, then select the B }option & browse for your record. This could take some time especially for a larger database because the selectio}n routines compare using BASIC strings. The F option uses a Machine Language routine to find the record you want} by searching the key file in memory. You can only search for one string at a time and only for an equal compare. If }more than one record meets your criteria, pressing RETURN will search for the next } ULTRAFILER/COLE/7 occurrence. E - ENTER SELECTION CRITERIA. This option allows }you to enter selection specifications to determine which records to display or print. You will be led through a }routine which will step you through the key fields and ask if you wish to select based upon that field. If so, y}ou will be asked to enter a number corresponding to the type of comparison desired (equal, less than, etc.). You will }then be asked to enter comparison data. The data you enter will be compared with each record in the database and}, based upon your comparison number, decide whether or not to select the record for display, print, or whatever. } If the length of your comparison data is less than the full field length, both fields will be compared for the shorter} length. If more than one selection item is entered, the items have an 'OR' relationship; i.e., a record will be} selected if ANY ONE of the selection criteria is satisfied. If option E is never used, all records are presumed} to meet your selection criteria. B - BROWSE THROUGH RECORDS. This option displays selected records upon yo}ur screen. After the record has been displayed, the program will wait for your input. If you merely type RETURN, the }next selected record will be displayed. If you enter "M", you will be returned to the INQUIRE menu. If you ente}r "C", you will go to a routine very similar to the ADD program where you will be prompted through each field of }the record. If you don't wish to change the field, type RETURN; otherwise, enter the new data for the field. If } you type "D", you will be taken to a delete routine. For safety's sake, you will be asked "ARE YOU SURE?". If you an}swer "Y", the record will be deleted; otherwise you will be displayed the next } ULTRAFILER/COLE/8 selected record. L - PRODUCE LABELS. This option will produce lab}els. The routine can print 1, 2 or 3-wide labels. You will be guided through a series of requests for further i}nformation. The first is "ENTER COLUMNS PER LABEL". Most labels are 35 print positions wide. The second reques}t is "ENTER LINES ON LABEL". Again, most labels are 6 lines high. The third request is "ENTER # OF LABELS ACROSS". T}his is a number from 1 to 3 depending upon your forms and your printer capability. You will then be asked for Fi}eld 1, Line 1. Enter the number of the field. You will then be asked for a field length. If the full length of} the field is OK, just hit RETURN; otherwise, enter the length of the field you want to appear on the label. You will} then be asked for the next field number on that line. If there are no more fields for that line, enter a zero fo}r field number. If there are no more fields to go on any lines, hit RETURN. Next, you will be told to turn on th}e printer and type RETURN. ULTRAFILER will now give a lineup test. You will then be asked "ARE FORMS ALIGNED?". If y}ou enter "Y", the labels wil begin to print; otherwise another lineup test will be printed. At the end of the la}bels, the total account will appear on the screen. If more than 1 field is placed on a single line, the next fie}ld will begin 1 space after the last non-blank character in the prior field. M - RETURN TO MAIN MENU. This }option will return you to the Main Menu module. P - PRINT REPORT. This option will produce a report on your} printer. The first line of each page contains the date, a comment of your choice, and the page number. The nex}t printed line contains the ULTRAFILER/COLE/9 headings }for the fields you are going to print. Finally, the detail lines are produced having the fields arranged in columns. }You will be guided through a series of requests. The first request is "ENTER MAXIMUM COLUMNS". This tells ULTRA}FILER how many columns it has to work with. A valid response is a number from 40 to 132. If you enter a number }larger than 80, condensed print control characters will be to the printer; otherwise regular print control characters w}ill be sent. The next request is "ENTER MAXIMUM LINES". This is the number of lines that fill fit on one page. } Typically this is 66. Next you are asked to "ENTER SPACING". Enter a "1" for single and a "2" for double spaci}ng. You will then be asked to "ENTER REPORT HEADING". You may enter a heading of from 1 to 40 characters. It will be} centered on line 1 of each page. You will next be asked to "ENTER STARTING PAGE #". Merely entering RETURN wil}l assume page # 1. You may want to enter a higher page number if you had to stop an earlier report before it cou}ld finish. Finally, you will be told to turn on the printer and type RETURN. Printing will then commence. }R - REPLACE FIELD. This option will replace a field with a constant value. Which records will have a field replaced d}epends upon your selection criteria. T - TOTAL SELECTED RECORDS. If you merely want to see how many r}ecords in your database meet your selection criteria, use this option. ULTRAFILER will check each record in the databa}se and show the total on the screen. U - UNDELETE A DELETED RECORD. This option will, if any deleted }records are in your database, allow you to reuse one record's space. You will be led through a series of prompts simil}ar to the ADD ULTRAFILER/COLE/10 routine. C }- CHARACTER SCAN. This option will search every field in a record for a specified character string. Which records get} searched depends upon your selection criteria. W - WRITE SUB FILE. This is an option to write out a subset} of your existing data base to a new data base. Which records get selected depends upon your selection criteria.} ULTRAFILER will write the subfiles to Drive #1 and name the new files "SUBFILE.DEF" and "SUBFILE.DAT". You may} rename your new subfiles with DOS. If you only have a 1 drive system, make sure your data diskette has enough r}oom for both your existing data base and your new subfile. Q - QUIT. This option ends ULTRAFILER and allows you t}o exit to DOS or run another program. REFORMAT is the module used for the following: 1. add a new fi}eld, 2. delete a field, 3. increase or decrease the size of a field, 4. change the field name, 5. any or all of the} above. Upon entering this module, you will be asked a series of questions. You will be asked the current date.} Enter it as month/day/year with no slashes. e.g. 022887. Next, you will be asked if you only have 1 disk driv}e. After this, you will be asked the database name. This name must start with an alphabetic character and can be up t}o 8 characters long (no special characters or embedded blanks). You will then be instructed to ready the proper }diskette and type RETURN. The first field's characteristics will be shown on the screen along with a menu of} options. You may transfer the field as it is, change the field (field name/length), delete the field, end the field} definitions, or add a new field. This module will continue until you } ULTRAFILER/COLE/11 enter an 'E'. ULTRAFILER will write the subfiles to Drive #1 and name the n}ew files "SUBFILE.DEF" and "SUBFILE.DAT". You may rename your new subfiles with DOS. If you only have a 1 drive} system, make sure your data diskette has enough room for both your existing data base and your new subfile. } If you increased the size of an existing field, it will be padded to the right with spaces. If you decreased Th}e size of a field, all data beyond the new field length will be lost. There are some general rules which you} should keep in mind. ULTRAFILER modules are BASIC programs. If you have a 400/800, you must use your trusty BA}SIC cartridge. If you have one of the many AUTORUN/SYS programs which will automatically run a BASIC program, you } can put it on the program disk so that the MENU program will be up and running when you boot the diskette. This prog}ram should run on any DOS that supports standard ATARI NOTE and POINT commands. If you have the public domain TU}RBO BASIC interpreter, using it will greatly speed up the key file selection process. If you decide to do this, you wi}ll have to name the MENU program AUTORUN.BAS Generally, when a YES/NO question is asked, a "Y" is interprete}d as a YES; otherwise anything else is interpreted as a NO. In most cases when you are asked for a field length,} just typing RETURN will assume the maximum defined length. The proper control characters for regular and co}ndensed print should be placed in the variables REG$ and COND$ in line 1045 of the INQUIRE module. The values sho}wn are for the Atari XMM801 printer. To avoid the annoying delay of having a routine poke in machine } ULTRAFILER/COLE/12 language, the ML sort routine and the search rou}tine are included in a string. This, however, makes it rather hard to type in those lines. The SORT and the SEA}RCH programs will, when run, write out the lines for the ML routines as an ATASCII file. You can then load the INQUIRE} module and type ENTER "D:SORT.LST" and ENTER "D:SEARCH.LST. The lines containing the machine language routines }will be merged. Both machine language routines were published in older issues of Compute Since the INQUIRE }needs every character of memory it can get for the key file, REM statements have been eliminated. On a 48K or larger} system, you should have about 14500 characters for the keys. The MENU program has two pokes which disable the} BREAK key on REV. B ROM's and later. If you have an early model, you should delete that line. Final}ly, when printing and you desire to interrupt the printer, merely press any of the function keys (OPTION, SELECT, or ST}ART). Do NOT hit SYSTEM RESET. Depending upon what you were doing, you could cause real problems. Every effort} has been made to trap all possible errors. As with any computerized data, make sure you BACK UP your files regu}larly. Remember, the longer between backups, the longer it will take you to get your database back in shape in case of} a catastrophe. Happy Computing! } catastrophe. Happy Computing! BvXMENXNEXXYXHDXPRXERVVVVVVVVVVV1V1V1V1V1V1V1V1V1V10V19V25UPDATPARMFIELDDATEDBNAM!}EYNNAMEDRIVEOPTKEYPARMMLBUFFERSELPARMPRTPARMPRTSRTOPTCONDREGDRECLECNTOTRECDELRECRECORDKEYAREKEYFSECTO!}FBYTKEYKEYLEPTKEINSECTOBYTHLPTRLENGTOFFSEEXTCNRECNULINPAGCURDELSELOSTARSORROCOPLENGTPRTCNPW!}IDTPUPLINEADDTOPLNBOTLNSTPLINENNEWPREPLYPOSOUTPCNTTYPETRNOLDNEWNOOSUXDOLDCN!} !} !"!}#$%&'()*+,-./012!}3456789:;<=>?@A!}BCDEFGHIJKLMNOPQ!}RSTUVWXYZ[\]^_`a!}bcdefghijklmn ##Ԡ!}ΠǠś!!Π٠Ҡ $$Ƞ UPDATED 02/24/90('6-A@6-A@0'6-AQ !}2 <6-6-@'6-@36-@?6-@K6-@W6-@c6-@o6-@{6-"}@ 6-@6-@6-@6-@6-@6-@FW6-@6-@'6-@36-A"}?6-AK6-AVQ6-W6-P..;AS,;,;,;,;,;,;,Z::;AS,;,;@@,;,"};@ ,;,;,dI 6. 67AS,. %67,..6.>:,@67@@,.>:,I67,.i' 6.>:,67@ ,.>:,'"}67,.nE:xC+%6-F:A`,%$F:Aa,%3&@q;%C0 ) -)(ENTER TO"}DAYS DATE AS  -(B2010000)3123199'-@ 8( INVALID DATEB A0, -,(DO "}YOU ONLY HAVE 1 DISK DRIVE? -( 4Y)4N A Ap& -&(ENTER DATABASE FILE NAME"} -( B:,! AP` 4Y6.1 4N6.2 AF` APP1 -1(RE"}ADY DISKETTE IN DRIVE  ĭ"# -( PRESS RETURN #,6 A0@% )67B:,%,.>:"},% A JF:,A6 APPT ^6-$@:7,,%@:7,,h6-@:7,,r6-$@:7,,%@:7,,|6-$@:" }7,,%@:7,,67<,.7<, ;%,4( AF (0(PRESS RETURN TO CONTINUE4 '6-@6-" }6-!6-'6- A@( " Ae&&( = TRANSFER ABOVE FIELD AS IS( = CHANGE ABOVE FIELD" }( = DELETE ABOVE FIELD!!( = END FIELD DEFINITIONS( = ADD NEW FIELD(  4A A  4" }E A0 " A%3 4D6-%@!6-%)6-%3 A% 4T A 4C A" } A%ҠĠӠӛ! 6-%67<,.>:,!6-%67<%,.7<%,6-@:7%,, 6-%"}J%!AU-@ @(MAXIMUM RECORD LENGTH EXCEEDEDJ A$$6-P:'AV,$6-&$AV.67,.>:,8"} 6-%B67,.>:,L 6-%V67,.>:,` 6-%j 6-%K!@ -@ A(!MAXIMUM NUMBER OF FIE"}LDS EXCEEDEDK A 6-%6-% A%ŠΠǠě ^'  -'(ENTER FIELD NAME"} %r -(|@B:, )B:,!-@ 6(INVALID FIELD NAME@ A0=7<,4 -@ 3("}INVALID FIELD NAME= A0 67,. 6-%67,.>:B:,, 6-%2 6.A A2BYPASS ASKING TYPE FO"}R NOW' -'(ENTER FIELD TYPE - A OR N -(4A)4N A&-@ &(INVALID FIE"}LD TYPE A@ 67,. 6-% - (ENTER FIELD LENGTH AP& -(0B )!A"}-@ 8(INVALID FIELD LENGTHB A:J%!AU-@ @(MAXIMUM RECORD LENGTH EXCEEDEDJ A"}D$6-P:'AV,$6-&$AVN67,.>:,X 6-%b67,.>:,l 6-%v67,.>:, 6-% 6-%"} A&-@ &(FIELD LENGTH ERROR  A 6-%K!@ -@ A(!MAXIMUM NU"}MBER OF FIELDS EXCEEDEDK A)67<,.>:,6-%!6-%)6-% A%Ġנě R'  -"}'(ENTER FIELD NAME %f -(p@B:, )B:,!-@ 6(INVALID FIELD NAME@ A!0z=7"}<,4 -@ 3(INVALID FIELD NAME= A!0 67,. 6-%67,.>:B:,, 6-%2 6.A A""}2BYPASS ASKING TYPE FOR NOW' -'(ENTER FIELD TYPE - A OR N -(4A)4N A"&-"}@ &(INVALID FIELD TYPE A"@ 67,. 6-% - (ENTER FIELD LENGTH A$P  -("}$ B )!A-@ 8(INVALID FIELD LENGTHB A#. J%!AU-@ @(MAXIMUM RECORD "}LENGTH EXCEEDEDJ A8 $6-P:'AV,$6-&$AVB 67,.>:,L 6-%V 67,.>:,` 6-%j 67,.>"}:,t 6-%~ 6-% A$ &-@ &(FIELD LENGTH ERROR   A# 6-% K!@ -" }@ A(!MAXIMUM NUMBER OF FIELDS EXCEEDEDK A A% ĠƠҠś  \ APPa  6"!}-&6-f 6.Dp 67B:,%,.z 67B:,%,.: 67B:,%,. 67B:,%,..DAT  !!""} D:SUBFILE.DAT A8  6-6-  ! 6. 67&,. !67,. -@@  @:7,,"#}" A7 6-+&,$% 6-@:7,, 6-+&,$% 6-$@:7%,,%@:7%,, 6-@:7%,, 6-6-"$}$@:7%,,%@:7%,,@:7%,, 6-@:7%,,$ 6-B''67<%&@,.7<%&@,t ~7<,4>:,"%} A7P( -((REFORMATTING RECORD # % ( 6-% A5F:,A6  AG 5 6."&} !@:,!@56.>:@:,&@2,$>(>:A%,-%( ULTRAFILER1-@&>(aF:BG"'}(,Ab*@@d<B7t@daŠˠ٠Ҡ̯Šӛ$ -(FIELD NAME L"(}ENGTH$   6-1(1(&# NAME LEN # NAME LEN ! AAp6-+&,$%##( 7<")}%, @:7%,," %!(  AAp, 6-%6-+&,$%6""( 7<%, @:7%,,@ 6-% AA"*}J(( FIELD # = %$ 2(Š 2( Ԡ 7<,/( &/(̠ "+}*$4 6.D>67B:,%,.H67B:,%,.:R67B:,%,.\67B:,%,..DEFf$p   ",} D:SUBFILE.DEF67<,.67<,.6-P:+,',6-&$67<,.>:,67<,.>:,67<,.>:,"-}6-P:+,',6-&$67<,.>:,67<,.>:,6-P:+,',6-&$67<,.>:,67<,.>:, ".}    ( ( AF #F:,Ae*F:,Ap# . -F:,"Ae.(INVALID FILE N"/}AME7F:,"Ae((INVALID FILE NAME-7 AR+(#THAT FILE NAME NOT ON THIS DISKETTER( INSERT PROPER DISKE"0}TTE ON DRIVE (ҭ CORRECT FILENAME AAA(ҠF:,ӠĠԠF:A,$%F:A"1},  (CONSULT REFERENCE MANUAL  D:REFORMATF:,ӠĠԠF:A,$%F:A P